﻿#ifndef GYSCADA_H
#define GYSCADA_H

#include <stdint.h>

#include "libgyscada.h"

class GYSCADA
{
public:
    static GYSCADA* getInstance();

    static void receive(libgyscada_control_type_t* types, uint32_t* addrs,
                        libgyscada_control_error_t* errors, uint32_t length, void* arg);

public:
    bool control(libgyscada_control_type_t type, uint32_t addr, void* value,
                 libgyscada_control_error_t* error);

    bool control(libgyscada_control_type_t* types, uint32_t* addrs, void** values,
                 libgyscada_control_error_t* errors, size_t length);

protected:
    GYSCADA();
    ~GYSCADA();

private:
    static GYSCADA* instance;

private:
    libgyscada_t*   gyscada;
};

#endif // GYSCADA_H
